import time

from housekeeping.settings.dev import SECRET_KEY
import jwt
# 在你提供的代码中，`self.secret` 是 `MyJWT` 类的一个实例变量，它被用于存储一个密钥，这个密钥用于 JWT（JSON Web Tokens）的加密和解密过程。让我们详细解释一下 `self.secret` 的作用：
#
# ### 1. 初始化密钥
# 在 `MyJWT` 类的构造函数 `__init__` 中，`self.secret` 被初始化为 `SECRET_KEY`，这是一个从 `housekeeping.settings.dev` 模块导入的值。这个密钥通常是一个随机生成的字符串，用于确保 JWT 的安全性。
#
# ### 2. 加密过程
# 在 `jwt_encode` 方法中，`self.secret` 被用作 `jwt.encode` 函数的密钥参数。这个函数使用提供的密钥和指定的算法（在这个例子中是 'HS256'，即 HMAC SHA-256）来加密传入的数据（`data`）。加密后的 JWT 是一个编码后的字符串，包含了原始数据和一个签名。这个签名确保了 JWT 的内容在传输过程中没有被篡改。
#
# ### 3. 解密过程
# 在 `jwt_decode` 方法中，`self.secret` 同样被用作 `jwt.decode` 函数的密钥参数。这个函数使用提供的密钥和指定的算法来验证 JWT 的签名，并解码 JWT，返回原始数据。如果 JWT 的签名不匹配（可能因为 JWT 被篡改），`jwt.decode` 函数将抛出一个异常。
#
# ### 4. 安全性
# `self.secret` 的值必须保密，不应该泄露给未经授权的第三方。如果攻击者获得了这个密钥，他们可以伪造或篡改 JWT，这可能导致安全漏洞。
#
# ### 5. 算法选择
# `self.secret` 与指定的算法（如 'HS256'）一起使用，确保了 JWT 的安全性。不同的算法提供了不同级别的安全性，选择合适的算法对于保护 JWT 至关重要。
#
# ### 总结
# `self.secret` 在这个上下文中是 JWT 加密和解密过程中的关键部分，它确保了 JWT 的完整性和安全性。通过使用一个安全的密钥和强大的算法，你可以确保 JWT 在客户端和服务器之间安全地传输敏感信息。



class MyJWT:
    def __init__(self):
        self.secret = SECRET_KEY

    def jwt_encode(self, data):
        return jwt.encode(data,self.secret,algorithm='HS256')
    def jwt_decode(self, token):
        return jwt.decode(token,self.secret,algorithms='HS256')










myjwt = MyJWT()
# print(myjwt.jwt_encode({'name': 'jwt', 'age': 1, 'sex': 'hzl韩尊龙'}))
# print(myjwt.jwt_decode("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoiand0IiwiYWdlIjoxLCJzZXgiOiJoemxcdTk3ZTlcdTVjMGFcdTlmOTkifQ.m50Z_5K2blKDdGbebAdU5Mhg2DmsyGmYdiQZU-81cnM"))

# data = myjwt.jwt_decode(   "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyaWQiOjEsInVzZXJuYW1lIjoiaHpsIiwibW9iaWxlIjoiMTUyMzc3NzkyMzkiLCJlbWFpbCI6ImgxMjNAcXEuY29tIiwiZXhwIjoxNzMyMjU5MDAzLCJyZWZyZXNoIjoxNzMyMjYyNjAzfQ.nmszVW79apQLa5XNti46gEZDW8TndXhN0OBnljGcIkQ")
# #
# #
# print(data)
# # data["exp"] = int(time.time())
# # print(data)
# # print(int(time.time()))
# print(myjwt.refresh_token("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyaWQiOjEsInVzZXJuYW1lIjoiaHpsIiwibW9iaWxlIjoiMTUyMzc3NzkyMzkiLCJlbWFpbCI6ImgxMjNAcXEuY29tIiwiZXhwIjoxNzMyMjU5MDAzLCJyZWZyZXNoIjoxNzMyMjYyNjAzfQ.nmszVW79apQLa5XNti46gEZDW8TndXhN0OBnljGcIkQ"))
#
# data = myjwt.jwt_decode(myjwt.refresh_token("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyaWQiOjEsInVzZXJuYW1lIjoiaHpsIiwibW9iaWxlIjoiMTUyMzc3NzkyMzkiLCJlbWFpbCI6ImgxMjNAcXEuY29tIiwiZXhwIjoxNzMyMjU5MDAzLCJyZWZyZXNoIjoxNzMyMjYyNjAzfQ.nmszVW79apQLa5XNti46gEZDW8TndXhN0OBnljGcIkQ"))
# print(data)